home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / amos / eaissu3b.lha / Source_Code / AK_IFF_Fonts_2.AMOS / AK_IFF_Fonts_2.amosSourceCode next >
AMOS Source Code  |  1995-12-30  |  2KB  |  79 lines

  1. ' IFF Font tutorial - Written by Andrew "Mushroom" Kellett 
  2. '
  3. ' Example 2 - Font 09 of 56 possible fonts.
  4. '
  5. ' This font is a clear example of a proportional font, a font that 
  6. ' uses the same width for each of the available characters.
  7.  
  8. Dim TEMPA(10) : Dim TEMPB(10)
  9. Dim NINEX(49) : Dim NINEY(49) : Dim NINEXX(49) : Dim NINEYY(49) : Dim NINES(49)
  10.  
  11. Global NINEX(),NINEY(),NINEXX(),NINEYY(),NINES(),TEMPA(),TEMPB(),POSX,POSY,TEX$
  12. Global _SCREEN,TEMP2,SC$
  13.  
  14. Proc _INSTALL_NINE : Rem Prepare font data
  15.  
  16. Procedure _INSTALL_NINE
  17.    FIRST:
  18.    Data 0,31,31,62,64,95,96,127,128,159,160,191,192,223,224,255,256,287,288,319
  19.    Restore FIRST
  20.    For N=1 To 10 : Read TEMPA(N),TEMPB(N) : Next N
  21.    DAT:
  22.    Data 0,32,33,65,66,98,99,131
  23.    Restore DAT
  24.    PNUM=1
  25.    For N=1 To 4 : Read BYTEA,BYTEB
  26.       For G=1 To 10
  27.          NINEX(PNUM)=TEMPA(G) : NINEY(PNUM)=BYTEA
  28.          NINEXX(PNUM)=TEMPB(G) : NINEYY(PNUM)=BYTEB
  29.          NINES(PNUM)=32
  30.          Inc PNUM
  31.       Next G
  32.    Next N
  33.    ' Extra pieces 
  34.    FDAT:
  35.    Data 0,136,11,168,12,14,136,31,146,18,34,135,65,168,32,67,143,87,168,21
  36.    Data 89,135,96,147,8,99,135,120,168,22,124,135,145,168,22,148,136,168
  37.    Data 156,21,171,135,178,168,8,182,135,194,168,13,196,136,208,161,13
  38.    Data 211,136,223,169,13,226,136,246,160,21
  39.    Restore FDAT
  40.    For N=37 To 49
  41.       Read NINEX(N),NINEY(N),NINEXX(N),NINEYY(N),NINES(N)
  42.    Next N
  43. End Proc
  44.  
  45. Procedure _SCROLL_NINE
  46.    Screen _SCREEN
  47.    Do 
  48.       TEMP=Varptr(SC$) : TEMP2=Len(SC$)
  49.       J$="0123456789abcdefghijklmnopqrstuvwxyz!"+Chr$(34)+"?+'()-._:;="+Chr$(32)
  50.       For LOP=0 To TEMP2-1
  51.          CNUM=Instr(J$,Mid$(SC$,LOP+1,1))
  52.          If CNUM=50 Then SCR=16 : Goto NXT
  53.          Screen Copy 2,NINEX(CNUM),NINEY(CNUM),NINEXX(CNUM),NINEYY(CNUM) To _SCREEN,300,0
  54.          SCR=NINES(CNUM)
  55.          NXT:
  56.          For LOP1=1 To SCR Step 4
  57.             Screen Swap 
  58.             Wait Vbl 
  59.             Screen Copy Physic(_SCREEN),0,0,350,40 To Logic(_SCREEN),-4,0
  60.          Next LOP1
  61.       Next LOP
  62.    Loop 
  63. End Proc
  64.  
  65. Screen Open 0,350,40,32,Lowres
  66. Screen Display 0,140,255,310,
  67. Flash Off : Curs Off : Hide On 
  68. Paper 0 : Cls 
  69.  
  70. Unpack 4 To 2 : Screen Hide 2 : Rem Unpack and hide font 
  71.  
  72. Screen To Front 0 : Screen Show 0
  73. Screen 0 : Get Palette 2
  74.  
  75. _SCREEN=0
  76. SC$="mushroom HAS just created a new font for you to play around with. please enjoy.          "
  77. SC$=Lower$(SC$)
  78.  
  79. Proc _SCROLL_NINE : Rem Activate scroller routine